home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / Library / OAErrs.mod < prev    next >
Text File  |  1995-06-29  |  6KB  |  154 lines

  1. <* STANDARD- *> <* MAIN- *> <* INITIALISE- *>
  2.  
  3. MODULE OAErrs;
  4. (****************************************************************
  5.  
  6.    This file was created automatically by `FlexCat 1.5'
  7.    Do NOT edit by hand!
  8.    Oberon-A source description C 1994 by Albert Weinert
  9.    Using with Oberon-A Interfaces for AmigaOS Release 3.1
  10.    Modified for Oberon-A 1.5 by Frank Copeland
  11.  
  12.    Application: OAErrs
  13.    Language   : "english"
  14.    Version    : 1
  15.    Description: OBERON-A:Catalogs/OAErrs.cd
  16.  
  17. ****************************************************************)
  18.  
  19. IMPORT
  20.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  21.  
  22. CONST
  23.   builtinlanguage = "english";
  24.   version = 1;
  25.  
  26. CONST
  27.   title* = 0;
  28.   haltButton* = 1;
  29.   posFormat* = 2;
  30.   abort* = 3;
  31.   assert* = 4;
  32.   runtimeError* = 5;
  33.   unknown* = 6;
  34.   kernNotAllocated* = 80;
  35.   kernUserTrap* = 81;
  36.   errOutOfMem* = 95;
  37.   errInvariant* = 96;
  38.   errPreCondition* = 97;
  39.   errPostCondition* = 98;
  40.   errNotImplemented* = 99;
  41.   errNoLibrary* = 100;
  42.   trap2* = 102;
  43.   trap3* = 103;
  44.   trap4* = 104;
  45.   trap5* = 105;
  46.   trap6* = 106;
  47.   trap7* = 107;
  48.   trap8* = 108;
  49.   trap9* = 109;
  50.   trap10* = 110;
  51.   trap11* = 111;
  52.   trap32* = 132;
  53.   trap33* = 133;
  54.   trap34* = 134;
  55.   trap35* = 135;
  56.   trap36* = 136;
  57.   trap37* = 137;
  58.   trap38* = 138;
  59.  
  60. TYPE
  61.   AppString = RECORD;
  62.      id  : LONGINT;
  63.      str : e.LSTRPTR;
  64.   END;
  65.   AppStringArray = ARRAY 32 OF AppString;
  66.  
  67. VAR
  68.   AppStrings : AppStringArray;
  69.   catalog : lo.CatalogPtr;
  70.  
  71.   PROCEDURE SetStrings;
  72.     BEGIN
  73.       AppStrings[0].id := title; AppStrings[0].str := y.ADR( "Oberon-A Runtime Error Handler" );
  74.       AppStrings[1].id := haltButton; AppStrings[1].str := y.ADR( "Halt Program" );
  75.       AppStrings[2].id := posFormat; AppStrings[2].str := y.ADR( "%s\nModule %s, line %ld, col %ld\n%s" );
  76.       AppStrings[3].id := abort; AppStrings[3].str := y.ADR( "Errors.Abort" );
  77.       AppStrings[4].id := assert; AppStrings[4].str := y.ADR( "Errors.Assert" );
  78.       AppStrings[5].id := runtimeError; AppStrings[5].str := y.ADR( "Runtime error detected" );
  79.       AppStrings[6].id := unknown; AppStrings[6].str := y.ADR( "Error code = %ld" );
  80.       AppStrings[7].id := kernNotAllocated; AppStrings[7].str := y.ADR( "Freeing unallocated memory" );
  81.       AppStrings[8].id := kernUserTrap; AppStrings[8].str := y.ADR( "Module Kernel could not allocate a user trap" );
  82.       AppStrings[9].id := errOutOfMem; AppStrings[9].str := y.ADR( "Out of memory" );
  83.       AppStrings[10].id := errInvariant; AppStrings[10].str := y.ADR( "Invariant violated" );
  84.       AppStrings[11].id := errPreCondition; AppStrings[11].str := y.ADR( "Pre-condition violated" );
  85.       AppStrings[12].id := errPostCondition; AppStrings[12].str := y.ADR( "Post-condition violation" );
  86.       AppStrings[13].id := errNotImplemented; AppStrings[13].str := y.ADR( "Procedure or method not implemented" );
  87.       AppStrings[14].id := errNoLibrary; AppStrings[14].str := y.ADR( "Could not open shared library" );
  88.       AppStrings[15].id := trap2; AppStrings[15].str := y.ADR( "Trap #2 : BusError" );
  89.       AppStrings[16].id := trap3; AppStrings[16].str := y.ADR( "Trap #3 : Address Error" );
  90.       AppStrings[17].id := trap4; AppStrings[17].str := y.ADR( "Trap #4 : Illegal Instruction" );
  91.       AppStrings[18].id := trap5; AppStrings[18].str := y.ADR( "Trap #5 : Divide by zero" );
  92.       AppStrings[19].id := trap6; AppStrings[19].str := y.ADR( "Trap #6 : CHK instruction" );
  93.       AppStrings[20].id := trap7; AppStrings[20].str := y.ADR( "Trap #7 : TRAPV instruction" );
  94.       AppStrings[21].id := trap8; AppStrings[21].str := y.ADR( "Trap #8 : Privilege violation" );
  95.       AppStrings[22].id := trap9; AppStrings[22].str := y.ADR( "Trap #9 : Trace bit trap" );
  96.       AppStrings[23].id := trap10; AppStrings[23].str := y.ADR( "Trap #10 : Line 1010 emulator" );
  97.       AppStrings[24].id := trap11; AppStrings[24].str := y.ADR( "Trap #11 : Line 1111 emulator" );
  98.       AppStrings[25].id := trap32; AppStrings[25].str := y.ADR( "Trap #32 : Compiler index check failed" );
  99.       AppStrings[26].id := trap33; AppStrings[26].str := y.ADR( "Trap #33 : Compiler type check failed" );
  100.       AppStrings[27].id := trap34; AppStrings[27].str := y.ADR( "Trap #34 : Compiler NIL check failed" );
  101.       AppStrings[28].id := trap35; AppStrings[28].str := y.ADR( "Trap #35 : Compiler case check failed" );
  102.       AppStrings[29].id := trap36; AppStrings[29].str := y.ADR( "Trap #36 : RETURN missing in function" );
  103.       AppStrings[30].id := trap37; AppStrings[30].str := y.ADR( "Trap #37 : Compiler stack check failed" );
  104.       AppStrings[31].id := trap38; AppStrings[31].str := y.ADR( "Trap #38 : Compiler range check failed" );
  105.     END SetStrings;
  106.  
  107.   PROCEDURE CloseCatalog*();
  108.     BEGIN
  109.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  110.    END CloseCatalog;
  111.  
  112.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  113.     VAR Tag : ARRAY 4 OF u.TagItem;
  114.     BEGIN
  115.       CloseCatalog();
  116.       IF (catalog = NIL) & (lo.base # NIL) THEN
  117.         Tag[0].tag := lo.builtInLanguage; Tag[0].data := y.ADR( builtinlanguage );
  118.         Tag[1].tag := u.ignore;           Tag[1].data := y.ADR( language );
  119.         Tag[2].tag := lo.version;         Tag[2].data := version;
  120.         Tag[3].tag := u.done;
  121.  
  122.         IF language # "" THEN
  123.           Tag[1].tag:= lo.language;
  124.         END;
  125.         catalog := lo.OpenCatalogA (loc, "OAErrs.catalog", Tag);
  126.       END;
  127.     END OpenCatalog;
  128.  
  129.   PROCEDURE GetString* (num: LONGINT): e.LSTRPTR;
  130.     VAR
  131.       i: LONGINT;
  132.       default: e.LSTRPTR;
  133.     BEGIN
  134.       i := 0; WHILE (i < 32) & (AppStrings[i].id # num) DO INC (i) END;
  135.  
  136.       IF i # 32 THEN
  137.         default := AppStrings[i].str;
  138.       ELSE
  139.         default := NIL;
  140.       END;
  141.  
  142.       IF catalog # NIL THEN
  143.         RETURN lo.GetCatalogStr (catalog, num, default^);
  144.       ELSE
  145.         RETURN default;
  146.       END;
  147.     END GetString;
  148.  
  149. BEGIN
  150.   catalog := NIL;
  151.   SetStrings;
  152. END OAErrs.
  153.  
  154.